package com.sh.代理模式.静态代理;


/**
 * 1、代理类和目标类实现同一个接口
 * 2、代理类持有目标类的引用
 * 3、代理类和目标类都实现接口中的方法
 * 4、代理类在调用目标类的目标方法前或后添加其他操作（增强）
 * 5、代理类是静态的，目标类是动态的
 * 好处： 功能增强不改变原来的代码、提现灵活性和可扩展性
 */
public class StaticProxyExample {
    public static void main(String[] args) {
        MusicPlayer musicPlayer = new MusicPlayerProxy();
        musicPlayer.play();
    }
}